home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 February / Macworld (1999-02).dmg / Games World / SharewareGames / Xconq 7.2.2 / lib / panzer.g < prev    next >
Text File  |  1998-05-22  |  18KB  |  726 lines

  1. (game-module "panzer"
  2.   (title "Panzer")
  3.   (blurb "base module for tactical-level WWII, Eastern Front")
  4.   (variants
  5.    (world-seen true)
  6.    (see-all false)
  7.    (world-size (80 40 25000))
  8.    (real-time (0 0 0))
  9.    ("Capture the Town" capture-the-town
  10.     (true
  11.       (add town start-with 1)
  12.       (add u* point-value 0)
  13.       (add town point-value 1)
  14.       ))
  15.    ("Minefields" minefields
  16.     (true
  17.       ;; if this is enabled, the AI gets confused...
  18.       (table independent-density
  19.         (minefield clear 500)
  20.         (minefield woods 100)
  21.         )
  22.       ))
  23.    ("Rougher" rougher
  24.     (true
  25.       (add t* elevation-max 1000)
  26.       ))
  27.    ("Night" night
  28.     (true
  29.       (world (day-length 144))
  30.       (set initial-day-part 72) ; midnight
  31.       ))
  32.    )
  33. )
  34.  
  35. (terrain-type water (image-name "water") (char ".")
  36.   (help "open water"))
  37. (terrain-type swamp (char "=")
  38.   (help "water, mud and thick vegetation - nearly impassable"))
  39. (terrain-type gully (char "&")
  40.   (help ""))
  41. (terrain-type woods (image-name "forest") (char "%")
  42.   (help "hinders visibility and combat"))
  43. (terrain-type slope (image-name "goldenrod") (char "/")
  44.   (help ""))
  45. (terrain-type clear (image-name "khaki") (char "+")
  46.   (help "open flat ground"))
  47. (terrain-type thick-forest (image-name "forest")
  48.   (subtype border)
  49.   (help "impassable to both wheeled and tracked vehicles"))
  50. (terrain-type stream (image-name "water")
  51.   (subtype connection) (subtype-x river-x)
  52.   (help ""))
  53. (terrain-type road
  54.   (subtype connection) (subtype-x road-x)
  55.   (help "faster travel for vehicles"))
  56.  
  57. (add (water swamp) liquid true)
  58.  
  59. (define cell-t* (water swamp gully woods slope clear))
  60.  
  61. ;;; Ground is what doesn't require swimming.
  62.  
  63. (define ground (swamp gully clear woods slope))
  64.  
  65. ;;; Vehicles require solid ground.
  66.  
  67. (define solid (gully clear woods slope))
  68.  
  69. ;;; Wheeled vehicles can't deal with woods.
  70.  
  71. (define drivable (gully clear slope))
  72.  
  73. (add t* elevation-min 100)
  74. (add t* elevation-max 300)
  75.  
  76. (area (cell-width 400))
  77.  
  78. (add clear river-chance 5.00)
  79.  
  80. ;;; Definitions of all the unit types.
  81.  
  82. ;;; Random gen should do these in clumps?
  83. (unit-type town (image-name "town20"))
  84. (unit-type block)
  85. (unit-type minefield)
  86. (unit-type cmdpost (name "command post") (image-name "cmd-post")
  87.   (acp-per-turn 1))
  88.  
  89. (add (town block minefield) speed 0)
  90.  
  91. ;;; Russian unit types.
  92.  
  93. (unit-type rmg (name "MG")
  94.   (help "Russian 12.7mm machine gun"))
  95. (unit-type r45 (name "45mm AT")
  96.   (help "Russian 45mm anti-tank"))
  97. (unit-type r57 (name "57mm AT")
  98.   (help "Russian 57mm anti-tank"))
  99. (unit-type r76at (name "76mm AT")
  100.   (help "Russian 76mm anti-tank"))
  101. (unit-type r122 (name "122mm AT")
  102.   (help "Russian 122mm anti-tank - has a long reach"))
  103. (unit-type r76h (name "76mm H")
  104.   (help "Russian 76mm howitzer"))
  105. (unit-type r82m (name "82mm M (Mot)")
  106.   (help "Russian motorized 82mm mortar"))
  107. (unit-type r82 (name "82mm M")
  108.   (help "Russian 82mm mortar"))
  109. (unit-type r120 (name "120mm M(r)")
  110.   (help "Russian 120mm mortar - a powerful long-range hitter"))
  111.  
  112. (define r-arty (rmg r45 r57 r76at r76h r122 r82m r82 r120))
  113.  
  114. (add r-arty generic-name "arty")
  115.  
  116. (add (r45 r57 r76at r122) image-name "pz-at")
  117. (add rmg image-name "pz-flak")
  118. (add r76h image-name "pz-how")
  119. (add (r82 r82m r120) image-name "pz-mortar")
  120.  
  121. (add r-arty acp-per-turn 1)
  122. (add r-arty speed 0)
  123. (add (r82m r82) speed 2.00)
  124.  
  125. (add r-arty acp-to-fire 1)
  126.  
  127. (add r-arty range ( 6  3  4  5 10 20 12 12 20))
  128.  
  129. (unit-type rengrs (name "engineers(r)") (image-name "engr"))
  130. (unit-type rrecon (name "recon(r)") (image-name "inf-plt"))
  131. (unit-type rrifle (name "rifle(r)") (image-name "inf-plt"))
  132. (unit-type rguard (name "guards(r)") (image-name "inf-plt"))
  133. (unit-type rsmg (name "submachinegun(r)") (image-name "inf-plt"))
  134.  
  135. (define r-inf (rengrs rrecon rrifle rguard rsmg))
  136.  
  137. (add r-inf generic-name "inf")
  138.  
  139. (add r-inf acp-per-turn 2)
  140.  
  141. (unit-type rcav (name "cavalry") (image-name "cavalry")
  142.   (acp-per-turn 6))
  143.  
  144. (unit-type rwag (name "wagon(r)") (generic-name "wagon"))
  145. (unit-type rtruck (name "truck(r)") (generic-name "truck"))
  146. (unit-type rhalf (name "halftrack(r)") (generic-name "halftrack"))
  147.  
  148. (define r-transport (rwag rtruck rhalf))
  149.  
  150. (add r-transport acp-per-turn (6 24 20))
  151.  
  152. (unit-type su-152 (name "SU-152") (image-name "su-152"))
  153. (unit-type su-76 (name "SU-76") (image-name "su-76"))
  154. (unit-type su-85 (name "SU-85") (image-name "su-85"))
  155. (unit-type su-100 (name "SU-100") (image-name "su-100"))
  156. (unit-type jsu-122 (name "JSU-122") (image-name "jsu-122"))
  157.  
  158. (define r-td (su-152 su-76 su-85 su-100 jsu-122))
  159.  
  160. (add r-td generic-name "TD")
  161.  
  162. (add r-td acp-per-turn (14 18 22 16 14))
  163. (add r-td acp-min (-14 -18 -22 -16 -14))
  164.  
  165. (add r-td acp-to-fire  (14 18 22 16 14))
  166. (add r-td range        (10  5  8  8 10))
  167.  
  168. (unit-type kv85 (name "KV85") (image-name "kv85")
  169.   (help "Early heavy tank"))
  170. (unit-type t34 (name "T-34c") (image-name "t-34c")
  171.   (help "The most common type of Russian tank"))
  172. (unit-type t34/85 (name "T-34/85") (image-name "t-34-85")
  173.   (help "A better T-34"))
  174. (unit-type js2 (name "JS II") (image-name "js-2")
  175.   (help "Heaviest Russian tank, but slow"))
  176.  
  177. (define r-tank (kv85 t34 t34/85 js2))
  178.  
  179. (add r-tank generic-name "tank")
  180.  
  181. (add r-tank acp-per-turn (20 22 22 16))
  182. (add r-tank acp-min (-20 -22 -22 -16))
  183.  
  184. (add r-tank acp-to-fire  (20 22 22 16))
  185. (add r-tank range        ( 8  6  8  8))
  186.  
  187. (define r-wheeled (rwag rtruck))
  188.  
  189. (define r-tracked (append rhalf r-td r-tank))
  190.  
  191. (define r-vehicle (append r-wheeled r-tracked))
  192.  
  193. (define r-armored (append rhalf r-td r-tank))
  194.  
  195. (define russian (append r-arty r-inf rcav r-transport r-td r-tank))
  196.  
  197. (add russian possible-sides "russian")
  198.  
  199. ;;; German unit types.
  200.  
  201. (unit-type g50 (name "50mm AT")
  202.   (help ""))
  203. (unit-type g75 (name "75mm AT")
  204.   (help ""))
  205. (unit-type g88 (name "88mm AT")
  206.   (help "German 88mm anti-tank"))
  207. (unit-type g20 (name "20mm F")
  208.   (help "German 20mm flak"))
  209. (unit-type g20q (name "20mmQUAD F")
  210.   (help "German 20mm quad flak"))
  211. (unit-type g75h (name "75mm H")
  212.   (help ""))
  213. (unit-type g150 (name "150mm H")
  214.   (help "German 150mm howitzer - hard-hitting but shortish range"))
  215. (unit-type g81 (name "81mm M")
  216.   (help ""))
  217. (unit-type g120 (name "120mm M(g)")
  218.   (help ""))
  219.  
  220. (define g-arty (g50 g75 g88 g20 g20q g75h g150 g81 g120))
  221.  
  222. (add g-arty generic-name "arty")
  223.  
  224. (add (g50 g75 g88) image-name "pz-at")
  225. (add (g75h g150) image-name "pz-how")
  226. (add (g20 g20q) image-name "pz-flak")
  227. (add (g81 g120) image-name "pz-mortar")
  228.  
  229. (add g-arty acp-per-turn 1)
  230. (add g-arty speed 0)
  231.  
  232. (add g-arty acp-to-fire 1)
  233. (add g-arty range ( 5  6 20 10 10 12 12 12 20))
  234.  
  235. (unit-type gengrs (name "engineers(g)") (image-name "engr"))
  236. (unit-type gsec (name "security(g)") (image-name "inf-plt"))
  237. (unit-type grifle (name "rifle(g)") (image-name "inf-plt"))
  238. (unit-type gsmg (name "submachinegun(g)") (image-name "inf-plt"))
  239.  
  240. (define g-inf (gengrs gsec grifle gsmg))
  241.  
  242. (add g-inf generic-name "inf")
  243.  
  244. (add g-inf acp-per-turn 2)
  245.  
  246. (unit-type gwag (name "wagon(g)") (generic-name "wagon"))
  247. (unit-type gtruck (name "truck(g)") (generic-name "truck"))
  248. (unit-type ghalf (name "halftrack(g)") (generic-name "halftrack"))
  249.  
  250. (define g-transport (gwag gtruck ghalf))
  251.  
  252. (add (rwag gwag) image-name "wagon")
  253. (add (rtruck gtruck) image-name "truck")
  254. (add (rhalf ghalf) image-name "halftrack")
  255.  
  256. (add g-transport acp-per-turn (6 24 20))
  257.  
  258. (unit-type sdkfz/1 (name "SdKfz 234/1") (image-name "sdkfz-234-1")
  259.   (help "Weak, but fastest unit in the game"))
  260. (unit-type puma (name "Puma"))
  261. (unit-type sdkfz/4 (name "SdKfz 234/4") (image-name "sdkfz-234-4"))
  262.  
  263. (define g-car (sdkfz/1 puma sdkfz/4))
  264.  
  265. (add g-car generic-name "car")
  266.  
  267. (add g-car acp-per-turn (32 28 28))
  268. (add g-car acp-min (-32 -28 -28))
  269.  
  270. (add g-car acp-to-fire  (32 28 28))
  271. (add g-car range        ( 2  6 13))
  272.  
  273. (unit-type maultier (name "Maultier")
  274.   (help "Second-deadliest in the game, but very vulnerable"))
  275. (unit-type wespe (name "Wespe")
  276.   (help "Longest range in the game, but vulnerable"))
  277. (unit-type hummel (name "Hummel")
  278.   (help "Deadliest unit in the game, but vulnerable"))
  279.  
  280. (define g-spa (maultier wespe hummel))
  281.  
  282. (add g-spa generic-name "SPA")
  283.  
  284. (add g-spa acp-per-turn (20 16 16))
  285. (add g-spa acp-min (-20 -16 -16))
  286.  
  287. (add g-spa acp-to-fire  (20 16 16))
  288. (add g-spa range        (12 32 24))
  289.  
  290. (unit-type gw38 (name "Gw 38"))
  291. (unit-type wirbelwind (name "Wirbelwind"))
  292. (unit-type stuh42 (name "Stu H 42"))
  293. (unit-type marder3 (name "Marder III"))
  294. (unit-type stug3 (name "StuG III"))
  295. (unit-type hetzer (name "Hetzer"))
  296. (unit-type nashorn (name "Nashorn")
  297.   (help "Longer-range TD"))
  298. (unit-type jgdpz4 (name "Jgd Pz IV"))
  299. (unit-type jgdpz5 (name "Jgd Pz V"))
  300. (unit-type jgdpz6 (name "Jgd Pz VI"))
  301.  
  302. (define ww wirbelwind)
  303.  
  304. (define g-td (gw38 ww stuh42 marder3 stug3 hetzer nashorn jgdpz4 jgdpz5 jgdpz6))
  305.  
  306. (add g-td generic-name "TD")
  307.  
  308. (add g-td acp-per-turn (12 16 16 16 16 12 16 16 18 10))
  309. (add g-td acp-min (-12 -16 -16 -16 -16 -12 -16 -16 -18 -10))
  310.  
  311. (add g-td acp-to-fire  (12 16 16 16 16 12 16 16 18 10))
  312. (add g-td range        (12 10 12  8  8  8 20 12 12 12))
  313.  
  314. (unit-type lynx (name "Lynx")
  315.   (help "Weak but speedy"))
  316. (unit-type pz4 (name "PzKpfw IV") (image-name "pz-4")
  317.   (help "Most common type of Panzer"))
  318. (unit-type panther (name "Panther")
  319.   (help "All-around best tank"))
  320. (unit-type tiger1 (name "Tiger I") (image-name "tiger-1")
  321.   (help "Powerful but slow tank"))
  322. (unit-type tiger2 (name "Tiger II") (image-name "tiger-2"))
  323.  
  324. (define g-tank (lynx pz4 panther tiger1 tiger2))
  325.  
  326. (add g-tank generic-name "tank")
  327.  
  328. (add g-tank acp-per-turn (20 16 20 16 12))
  329. (add g-tank acp-min (-20 -16 -20 -16 -12))
  330.  
  331. (add g-tank acp-to-fire  (20 16 20 16 12))
  332. (add g-tank range        ( 4  8 12 10 12))
  333.  
  334. (define g-wheeled (append gwag gtruck g-car))
  335.  
  336. (define g-tracked (append ghalf g-spa g-td g-tank))
  337.  
  338. (define g-vehicle (append g-wheeled g-tracked))
  339.  
  340. (define g-armored (append ghalf g-car g-spa g-td g-tank))
  341.  
  342. (define german (append g-arty g-inf g-transport g-car g-spa g-td g-tank))
  343.  
  344. (add german possible-sides "german")
  345.  
  346. ;;; Non-side-specific type lists.
  347.  
  348. (define arty (append r-arty g-arty))
  349.  
  350. (define inf (append r-inf g-inf))
  351.  
  352. (define engrs (rengrs gengrs))
  353.  
  354. (define transport (append r-transport g-transport))
  355.  
  356. (define wheeled (append r-wheeled g-wheeled))
  357.  
  358. (define tracked (append r-tracked g-tracked))
  359.  
  360. (define vehicle (append r-vehicle g-vehicle))
  361.  
  362. (define armored (append r-armored g-armored))
  363.  
  364. ;;; What happens to tanks that get wrecked.
  365.  
  366. (unit-type wreck (image-name "tank-wrecked") (acp-per-turn 0))
  367.  
  368. ;;; Wrecks don't belong to either side.
  369.  
  370. (add wreck possible-sides "independent")
  371.  
  372. (add wreck assign-number false)
  373.  
  374. ;; This should be the end of type definitions.
  375.  
  376. ;;; Static relationships.
  377.  
  378. (table vanishes-on
  379.   (u* water true)
  380.   (vehicle swamp true)
  381.   )
  382.  
  383. ;; Normal stacking is 4 in a hex.
  384.  
  385. (add ground capacity 4)
  386.  
  387. (table unit-size-in-terrain
  388.   (u* solid 1)
  389.   ((block town) ground 4)  ; towns and blocks fill entire hex
  390.   )
  391.  
  392. ;; Towns can have a higher concentration of units.
  393.  
  394. (add town capacity 8)
  395.  
  396. ;; Trucks, tanks, etc can carry one infantry or artillery unit.
  397.  
  398. (add vehicle capacity 1)
  399.  
  400. (table unit-size-as-occupant
  401.   (u* u* 99)  ; can't be occupants usually
  402.   (r-arty r-vehicle 1)
  403.   (r-inf r-vehicle 1)
  404.   (g-arty g-vehicle 1)
  405.   (g-inf g-vehicle 1)
  406.   (arty town 1)
  407.   (inf town 1)
  408.   (vehicle town 1)
  409. )
  410.  
  411. ;;; Vision.
  412.  
  413. ;; No secret towns, although ownership might be unknown.
  414.  
  415. (add town already-seen 100)
  416.  
  417. ;; Everybody sees everything up to about 2 km or so.
  418. ;; (Every unit has *somebody* with binoculars!)
  419.  
  420. (add u* vision-range 8)
  421. ;; No binoculars (or even eyes) for these types though.
  422. (add (block minefield wreck) vision-range -1)
  423.  
  424. (table vision-night-effect
  425.   ;; No time to study vague shapes in the dark, so night vision
  426.   ;; greatly curtailed.
  427.   (u* t* 25)
  428.   ;; (should have some types, like CPs, less affected?)
  429.   )
  430.  
  431. ;; Everybody is line-of-sight.
  432.  
  433. (add u* vision-bend 0)
  434.  
  435. (table eye-height
  436.   ;; Everybody can at least stand up to look around.
  437.   (u* t* 2)
  438.   ;; One can stand on top of a vehicle to see further.
  439.   (vehicle t* 4)
  440.   )
  441.  
  442. ;; Trees go up to about 20m in height.
  443.  
  444. (add (woods thick-forest) thickness 20)
  445.  
  446. ;; Unit types are not always easy to distinguish.
  447.  
  448. (table see-mistake-chance
  449.   (u* r-tank 50.00)
  450.   (u* g-td 50.00)
  451.   (u* g-spa 50.00)
  452.   (u* g-tank 50.00)
  453.   )
  454.  
  455. (table looks-like
  456.   ;; Types are most likely to look like types in the same class.
  457.   (r-tank r-tank 20)
  458.   (g-spa g-spa 20)
  459.   (g-td g-td 20)
  460.   (g-tank g-tank 20)
  461.   ;; Tracked types are less likely, but still possible.
  462.   (r-tracked r-tracked 10)
  463.   (rhalf u* 0)
  464.   (g-tracked g-tracked 10)
  465.   (ghalf u* 0)
  466.   )
  467.  
  468. ;;; Actions.
  469.  
  470. (table acp-night-effect
  471.   (vehicle t* 50)
  472.   (vehicle road 75)
  473.   )
  474.  
  475. ;;; Movement parameters.
  476.  
  477. (table mp-to-enter-terrain
  478.   (u* t* 1)
  479.   (u* slope 2)
  480.   (u* road 0)
  481.   (u* water 99)
  482.   (vehicle swamp 99)
  483.   )
  484.  
  485. (table mp-to-leave-terrain
  486.   (u* t* 1)
  487.   (wheeled gully 20)
  488.   (tracked gully 3)
  489.   (u* road 0)
  490.   )
  491.  
  492. (table mp-to-traverse
  493.   (u* road 1)
  494.   )
  495.  
  496. (table mp-to-enter-zoc
  497.   (u* u* -1)
  498.   (u* wreck 10)
  499. ;  (u* minefield 20)
  500.   )
  501.  
  502. ;; Need high cost of entry, takes entire turn, including transport's acp.
  503.  
  504. (table ferry-on-entry
  505.   (r-transport r-arty over-all)
  506.   (g-transport g-arty over-all)
  507.   )
  508.  
  509. ;;; Combat parameters.
  510.  
  511. (table acp-to-attack
  512.   (u* u* 2) ; for now
  513.   ;; Nobody can attack a block or wreck...
  514.   (u* (block wreck) 0)
  515.   ;; ...except for engrs trying to remove one.
  516.   (engrs (block wreck) 1)
  517.   )
  518.  
  519. (table acp-to-defend
  520.   (u* u* 2) ; for now
  521.   )
  522.  
  523. ;; In general, hp of 2 is healthy, 1 is crippled, 0 is dead or disappeared.
  524.  
  525. (add u* hp-max 2)
  526. ;; Towns are not indestructible, but you'd have to work at it.
  527. (add town hp-max 500)
  528. (add minefield hp-max 1)
  529. ;; Trucks and wagons pretty much evaporate in this sort
  530. ;; of combat.
  531. (add transport hp-max 1)
  532. ;; However, armored equipment can absorb more punishment.
  533. (add armored hp-max 4)
  534. ;; ...but not halftracks.
  535. (add (rhalf ghalf) hp-max 2)
  536.  
  537. (table hit-chance
  538.   ;; By default, don't allow combat.
  539.   (u* u* 0)
  540.   ;; Minefields almost always hit.
  541.   (minefield u* 90)
  542.   ;; But they're unlikely to catch engineers by surprise.
  543.   (minefield engrs 20)
  544.   (r-arty u* 100)
  545.   (r-arty g-inf 50)
  546.   (r-inf  u* 100)
  547.   (r-inf  g-armored 50)
  548.   (r-td   u* 100)
  549.   (r-td   g-inf 50)
  550.   (r-tank u* 100)
  551.   (r-tank g-inf (50 40 50 60))
  552.   (g-arty u* 100)
  553.   (g-inf  u* 100)
  554.   (g-inf  r-tank 10)
  555.   (g-car  u*  70)
  556.   (g-car  r-inf  30)
  557.   (g-spa  u* 100)
  558.   (g-spa  r-inf 50)
  559.   (g-td   u* 100)
  560.   (g-td r-inf 40)
  561.   (g-tank u* 100)
  562.   (g-tank r-inf 40)
  563.   ;; Nobody can do anything to a burning wreck.
  564.   (u* wreck 0)
  565.   ;; Only engineers can clear minefields.
  566.   (u* minefield 0)
  567.   (engrs minefield 20)
  568.   )
  569.  
  570. (table damage
  571.   (u* u* 0)
  572.   (minefield u* 1)
  573.   (r-arty u* 1)
  574.   (r-inf  u* 1)
  575.   ((rcav rhalf) u* 1)
  576.   (r-td   u* 2)
  577.   (su-152 u* 2)
  578.   (r-tank u* 1)
  579.   (g-arty u* 1)
  580.   (g-inf  u* 1)
  581.   (g-car  u* 1)
  582.   (g-spa  u* 1)
  583.   (g-spa  r-inf 1d2+1)
  584.   (wespe  u* 1d2+2)
  585.   (hummel u* 2d2+2)
  586.   (g-td   u* 1)
  587.   (g-tank u* 1)
  588.   ;; Heavy tanks are more deadly when they connect
  589.   ((js2 tiger1 tiger2) u* 2)
  590.   ;; Nobody can do anything to a burning wreck.
  591.   (u* wreck 0)
  592.   ;; Only engineers can clear minefields.
  593.   (u* minefield 0)
  594.   (engrs minefield 1)
  595.   )
  596.  
  597. (table occupant-combat
  598.   ;; Artillery can't be used from inside trucks etc.
  599.   (arty transport 0)
  600.   ;; (perhaps allow MGs and mortars to fire from halftracks?)
  601.   )
  602.  
  603. (add arty fire-angle-max 100)
  604. (add g-spa fire-angle-max 75)
  605. (add g-td fire-angle-max 25)
  606. (add g-tank fire-angle-max 25)
  607. (add r-tank fire-angle-max 25)
  608.  
  609. (table weapon-height
  610.   (u* t* 0)
  611.   (vehicle t* 2)
  612.   )
  613.  
  614. (table body-height
  615.   (u* t* 2)
  616.   ;; Infantry eats dirt. :-)
  617.   (inf t* 0)
  618.   )
  619.  
  620. ;;; Units eventually bounce back.
  621.  
  622. (add u* hp-recovery 0.50)
  623.  
  624. ;;; Wrecked armored vehicles continue to be exist.
  625.  
  626. (add armored wrecked-type wreck)
  627.  
  628. ;;; Towns are easy to capture, that's why they should be protected.
  629.  
  630. (table capture-chance
  631.   (u* town 100)
  632.   )
  633.  
  634. ;; Minefields clobber any unit trying to pass over them.
  635.  
  636. (add minefield acp-to-detonate 1)
  637.  
  638. (add minefield hp-per-detonation 0)
  639.  
  640. (table detonation-damage-at (minefield u* 1))
  641.  
  642. ;; All games will have exactly one Russian and one German side.
  643.  
  644. (set side-library '(
  645.   ((name "Russia") (noun "Russian") (adjective "Russian") (class "russian")
  646.    (color "red") (emblem-name "soviet-star") (names-locked true))
  647.   ((name "Germany") (noun "German") (adjective "German") (class "german")
  648.    (color "gray") (emblem-name "german-cross") (names-locked true))
  649.   ))
  650.  
  651. (set sides-min 2)
  652. (set sides-max 2)
  653.  
  654. ;;; The following sets up a simple game, for testing;
  655. ;;; usually this module should be used in a more-or-less
  656. ;;; preset scenario.
  657.  
  658. (set alt-blob-height 1000)
  659. (set alt-blob-size 100)
  660. (set alt-smoothing 10)
  661.  
  662. (add cell-t* alt-percentile-min (  0   5  10   5  90   5))
  663. (add cell-t* alt-percentile-max (  5  10  15  95  95 100))
  664. (add cell-t* wet-percentile-min (  0  50   0  90   0   0))
  665. (add cell-t* wet-percentile-max (100 100  50 100 100 100))
  666.  
  667. (set edge-terrain clear)
  668.  
  669. ;;; This is sort of a "sampler" OB, not particularly realistic.
  670.  
  671. (add (g75 r76at) start-with 2)
  672.  
  673. (add (g150 r122) start-with 1)
  674.  
  675. (add rrifle start-with 4)
  676.  
  677. (add grifle start-with 4)
  678.  
  679. (add rtruck start-with 6)
  680.  
  681. (add gtruck start-with 6)
  682.  
  683. (add (t34 su-76 su-85 su-152) start-with (8 2 2 2))
  684.  
  685. (add (pz4 panther tiger1 wespe hummel) start-with (4 2 1 1 1))
  686.  
  687. (set country-radius-min 5)
  688.  
  689. (set country-separation-min 25)
  690. (set country-separation-max 30)
  691.  
  692. (table road-chance
  693.   (town town 100)
  694.   )
  695.  
  696. (table road-into-chance
  697.   (t* t* 100)
  698.   (t* gully 20)
  699.   (gully t* 20)
  700.   (t* water 10)
  701.   (water water 0)
  702.   )
  703.  
  704. (add town road-to-edge-chance 100)
  705.  
  706. (set edge-road-density 400)
  707.  
  708. (add town spur-chance 100)
  709. (add town spur-range 8)
  710.  
  711. (add u* point-value 1)
  712.  
  713. (set advantage-max 3)
  714.  
  715. (scorekeeper (do last-side-wins))
  716.  
  717. (game-module (instructions "Move fast or die!"))
  718.  
  719. (game-module (design-notes (
  720.   "Turns represent about 10 minutes each, cells are about 250m across."
  721.   ""
  722.   "make shooting be LOS for armor, specify alts for artillery."
  723.   ""
  724.   )))
  725.  
  726.